A build system is a set of rules, commands and processes that are used to convert source code to binary assets. A build process actually builds the product. It is generally considered a best practice to execute a build process in as automated a manner as feasible, with as little human interaction as possible. A build process typically includes at least compiling source code for an application into compiled code and may include additional steps associated with the compiling of the source code such as, for example, executing acceptance tests. An automated build process is a build process in which there is no human intervention during the performance of the automated build process. An automated build process is usually performed by executing a series of scripts that are manually coded from scratch. The scripts direct the execution of build tools.
An integrated development environment (IDE) is a software application that provides comprehensive facilities for developers of software. An IDE normally includes at least a source code editor, a compiler and/or interpreter, build automation tools and a debugger. A version control system and various other tools may also be integrated into the IDE to simplify the software development process. Some IDEs also have a class browser, an object inspector, and a class hierarchy diagram, for use with object-oriented software development. Typically an IDE is dedicated to a specific programming language so that a set of features that match the programming paradigms of the language can be provided. However, some multiple-language IDEs are known, such as Eclipse, ActiveState Komodo, recent versions of NetBeans, Microsoft Visual Studio and WinDev.
An IDE typically presents a single environment in which all development occurs and provides a number of features for authoring, modifying, compiling, deploying and debugging software. The aim of the IDE is to increase programmer productivity. Some IDEs are graphical, while others are text-based and use function keys or hotkeys to perform various tasks. Software development can also be performed outside an IDE, using unrelated tools, such as vi, GCC or make.